package mx.itesm.escenas;

import org.andengine.engine.camera.Camera;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.opengl.util.GLState;

import mx.itesm.constants.ConstantesEscenas;

public class EscenaSplash extends EscenaBase {
	
	/*
	 * **************************************************************
	 *                                         Variables
	 * **************************************************************
	 */
	
	// Variables a utilizar
	private Sprite splashSprite;
	private static final int ORIGEN = ConstantesEscenas.ORIGEN;
	private static final int CENTRO_X = ConstantesEscenas.CENTRO_X;
	private static final int CENTRO_Y = ConstantesEscenas.CENTRO_Y;
	private static final Background AZUL_TEC = ConstantesEscenas.AZUL_TEC;
	private static final float ESCALA_LOGO = ConstantesEscenas.ESCALA_LOGO;
	
	/*
	 * **************************************************************
	 *                                         Metodos
	 * **************************************************************
	 */
	
	// Crear la escena Splash
	@Override
	public void crearEscena() {
		splashSprite = new Sprite(ORIGEN, ORIGEN, manejadorRecursos.splashRegion,
				mVerticesObjetos) {
			@Override
			protected void preDraw(GLState pGLState, Camera pCamera) {
				super.preDraw(pGLState, pCamera);
				pGLState.enableDither();
			}
		};
		
		Background fondo = AZUL_TEC;
		setBackground(fondo);
		setBackgroundEnabled(true);
		
		splashSprite.setScale(ESCALA_LOGO);
		splashSprite.setPosition(CENTRO_X, CENTRO_Y);
		attachChild(splashSprite);
	}

	
	// Tipo de escena
	@Override
	public TipoEscena getTipoEscena() {
		return TipoEscena.ESCENA_SPLASH;
	}

	
	@Override
	public void removerEscena() {
		splashSprite.detachSelf();
		splashSprite.dispose();
		this.detachSelf();
		this.dispose();
	}
	
	// Este metodo no se usa en esta escena
	@Override
	public void onBackKeyPressed() {}
}
